package org.price.sql.repo.session;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;

import javax.xml.bind.JAXBException;

import org.price.sql.repo.exceptions.SessionException;
import org.price.sql.repo.session.db.dialect.Dialect;

public interface SessionFactory {
    public Session createSession() throws SessionException;

    @SuppressWarnings("unchecked")
    public Dialect getCurrentDialect() throws SQLException;

    public void addDocumentType(File file) throws IOException, JAXBException;

    public void addDocumentType(InputStream stream) throws JAXBException;

    public void addDocumentType(String string) throws JAXBException;

    public void rebuildBackbase() throws SQLException;
}
